package com.cskaoyan.mall.api;

import com.cskaoyan.mall.dto.ClearCartItemRequest;
import com.cskaoyan.mall.dto.ClearCartItemResponse;
import org.springframework.web.bind.annotation.*;

/*
     该接口定义商品服务暴露给订单服务的接口方法
 */
public interface OrderProductService {

    /**
     * 清空指定用户的购物车缓存(用户下完订单之后清理）
     */
    @RequestMapping(value = "/rpc/items",method = RequestMethod.DELETE)
    ClearCartItemResponse clearCartItemByUserID(@RequestBody ClearCartItemRequest request);

    /**
     * 该方法是商品服务暴露给订单服务，用于商品下单时，减少商品表的库存数量
     */
    @RequestMapping("/reduce/stocknum")
    Boolean reduceStockNum(@RequestParam("productId") Long productId, @RequestParam("productNum") Long productNum);

    /*
         该方法是商品服务暴露给订单服务，同步库存表和商品数量的方法
     */
    @GetMapping("/update/itemNum")
    Boolean updateItemNum(@RequestParam("itemId")Long itemId,@RequestParam("newStockCount")Long newStockCount);

}
